program Project1; //Zadanie 7.1

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
plik = class
  dane, dane1: String[20];
  f: Text;
  procedure czytaj_dane(); //deklaracja metody czytaj_dane()
  procedure zapisz_dane_do_pliku(); //deklaracja metody zapisz_dane_do_pliku()
  procedure czytaj_dane_z_pliku(); //deklaracja metody czytaj_dane_z_pliku()
end;

procedure plik.czytaj_dane(); //definicja metody czytaj_dane()
begin
  Writeln('Podaj imie i nazwisko:');
  Readln(dane);
end;

procedure plik.zapisz_dane_do_pliku(); //definicja metody zapisz_dane_do_pliku()
begin
  Writeln('Zapis danych do pliku dane.txt.');
  Assign(f,'dane.txt'); //skojarzenie zmiennej pliowej z plikiem dane.txt
  Rewrite(f); //tworzymy i otwieramy plik
  Write(f,dane); //zapisujemy dane do pliku
  Close(f); //zamkniecie pliku
end;

procedure plik.czytaj_dane_z_pliku(); //definicja metody czytaj_dane_z_pliku()
begin
  Writeln('Odczyt danych z pliku dane.txt:');
  Assign(f,'dane.txt'); //skojarzenie zmiennej plikowej z plikiem dane.txt
  Reset(f); //otwarcie pliku juz istniejacego

  while not Eof(f) do
    begin
      Read(f,dane1); //czytamy dane z pliku
      Writeln(dane1);
    end;
  Close(f); //zamkniecie pliku
end;

var
  plik1:plik;

begin
  plik1:=plik.Create; //konstruktor tworzy obiekt i przydziela mu pamiec
  plik1.czytaj_dane(); //wywolanie metody czytaj_dane()
  plik1.zapisz_dane_do_pliku(); //wywolanie metody zapisz_dane_do_pliku()
  plik1.czytaj_dane_z_pliku(); //wywolanie metody czytaj_dane_z_pliku()
  plik1.Free; //destruktor niszczy obiekt i zwalnia pamiec

  Readln; //czeka na nacisniecie klawisza ENTER
end.
